home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / v cisle / ophcrack / ophcrack-win32-installer-2.3.3.exe / {app} / src / main.c < prev    next >
C/C++ Source or Header  |  2006-10-11  |  4KB  |  144 lines

  1. /*
  2.  
  3.     Ophcrack is a Lanmanager/NTLM hash cracker based on the faster time-memory
  4.     trade-off using rainbow tables. 
  5.     
  6.     Created with the help of: Maxime Mueller, Luca Wullschleger, Claude
  7.     Hochreutiner, Andreas Huber and Etienne Dysli.
  8.  
  9.     Copyright 2006 Philippe Oechslin, Cedric Tissieres
  10.  
  11.     Ophcrack is free software; you can redistribute it and/or modify
  12.     it under the terms of the GNU General Public License as published by
  13.     the Free Software Foundation; either version 2 of the License, or
  14.     (at your option) any later version.
  15.  
  16.     Ophcrack is distributed in the hope that it will be useful,
  17.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.     GNU General Public License for more details.
  20.  
  21.     You should have received a copy of the GNU General Public License
  22.     along with Ophcrack; if not, write to the Free Software
  23.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  24.  
  25.     This program is released under the GPL with the additional exemption 
  26.     that compiling, linking, and/or using OpenSSL is allowed.
  27. */
  28.  
  29. /* LanManager/NTLM password cracker using a Time-Memory Trade-Off */
  30.  
  31. /* 
  32.  * $Log: main.c,v $
  33.  * Revision 2.3.3 2006/10/11 tissieres
  34.  * save tables directory
  35.  *
  36.  * Revision 2.3.1 2006/07/30 tissieres
  37.  * Fit screen for small resolution
  38.  *
  39.  * Revision 2.2 2006/03/20 tissieres
  40.  * Support for livecd version
  41.  *
  42.  * Revision 2.1  2005/12/06 tissieres
  43.  * Added tables modification feature
  44.  *
  45.  * Revision 2.0  2005/03/24 tissieres
  46.  * Initial revision
  47.  *
  48.  */
  49.  
  50.  
  51. /*
  52.  * Initial main.c file generated by Glade. Edit as required.
  53.  * Glade will not overwrite this file.
  54.  */
  55.  
  56. #ifdef HAVE_CONFIG_H
  57. #  include <config.h>
  58. #endif
  59. #include <unistd.h>
  60. #include <stdlib.h>
  61. #include <string.h>
  62. #include <gtk/gtk.h>
  63.  
  64. #include "interface.h"
  65. #include "support.h"
  66.  
  67. #ifdef LIVECD
  68. #include "ophcrack.h"
  69. #endif
  70.  
  71. GtkWidget *main_window;
  72.  
  73. int
  74. main (int argc, char *argv[])
  75. {
  76.   extern char directory[];
  77.   FILE *configfile;
  78.   char config_filename[300];
  79.   char *line = (char *)malloc(100*sizeof(char));
  80.   char *parameter;
  81.  
  82.   gint pwidth, pheight, width, height;
  83.   gtk_set_locale ();
  84.   gtk_init (&argc, &argv);
  85.  
  86. #ifndef WIN32
  87.   add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
  88.   add_pixmap_directory ("../pixmaps");
  89. #else
  90.   add_pixmap_directory("pixmaps");
  91. #endif
  92.  
  93.   /*
  94.    * The following code was added by Glade to create one of each component
  95.    * (except popup menus), just so that you see something after building
  96.    * the project. Delete any components that you don't want shown initially.
  97.    */
  98.   main_window = create_main_window ();
  99.   
  100.   /* Resize window if it doesn't fit the screen - Thanks to icedgreen */
  101.   /* if main window is bigger than the current screen shrink to fit */
  102.   width=gdk_screen_width();
  103.   height=gdk_screen_height();
  104.   gtk_window_get_size(GTK_WINDOW(main_window), &pwidth, &pheight);
  105.   if (pwidth>width || pheight>height) {
  106.     gtk_window_maximize(GTK_WINDOW(main_window));
  107.   }
  108.   
  109.   gtk_widget_show (main_window);
  110.   create_model();
  111.  
  112. #ifdef WIN32
  113.   sprintf(config_filename, "%s\\config.ini", g_win32_get_package_installation_directory (NULL, NULL));
  114. #else
  115.   sprintf(config_filename, "%s/%s/config.ini", PACKAGE_DATA_DIR, PACKAGE);
  116. #endif
  117.  
  118.   if ((configfile=fopen((char *)config_filename,"r"))) {
  119.     while (fgets(line, 99, configfile) != NULL ) {
  120.       parameter = (char *)strsep(&line,"=");
  121.       if (!strcmp(parameter, "table_dir")){
  122.     strcpy(directory, line);
  123.     directory[strlen(directory)-1] = 0; //remove newline
  124.     auto_detect_tables(directory); 
  125.       }
  126.     }
  127.     fclose(configfile);
  128.   } else
  129.     find_tables();
  130.   
  131. #ifdef LIVECD
  132.   {
  133.     GtkFunction *func_ptr;
  134.     func_ptr = (GtkFunction *)&init_livecd; 
  135.     if (argc == 2)
  136.       gtk_init_add((GtkFunction)func_ptr, argv[1]);
  137.   }
  138. #endif 
  139.   gtk_main ();
  140.  
  141.   return 0;
  142. }
  143.  
  144.